Multiple encoder output buffer apparatus for differential coding of video information

ABSTRACT

Feedback is introduced between a video CODEC and the intended communications channel such that the characteristics of the channel are used to drive multiple video output buffers. These multiple output buffers share an original temporal video reference, but have different subsequent temporal video images. The communications channel interface then picks the subsequent video image buffer that best matches the current conditions experienced by it. By using a predictor of the channel performance, the video algorithm can be tuned to provide video output buffers with the best guess of how the buffers should be configured. A number of subsequent histories of an image are buffered until the receiving channel indicates it is ready to receive the next. Then the appropriate output buffer having the corresponding temporal change in the video is used to supply the next frame change information to the receiving station.

This is a reissue of Ser. No. 08/159,665 filed Nov. 30, 1993, now U.S.Pat. No. 5,416,520.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to the transmission of information over acommunications path. More particularly, the present invention relates tothe communications of high bandwidths information over networks ofvarying types.

2. Art Background

Until recently, telecommunications and computing were considered to beentirely separate disciplines. Telecommunications was analog and done inreal time whereas computing was digital and performed at a ratedetermined by the processing speed of a computer. Today, suchtechnologies as speech processing, electronic mail and facsimile haveblurred these lines. In the coming years, computing andtelecommunications will become almost indistinguishable in a race tosupport a broad range of new multimedia (i.e., voice, video and data)applications. These applications are made possible by emergingdigital-processing technologies, which include: compressed audio (bothhigh fidelity audio and speech), high resolution still images, andcompressed video. The emerging technologies will allow for collaborationat a distance, including video conferencing.

Of these technologies, video is particularly exciting in terms of itspotential applications. But video is also the most demanding in terms ofprocessing power and sheer volume of data to be processed. Uncompresseddigital video requires somewhere between 50 and 200 Mb/s (megabits persecond) to support the real-time transmission of standard televisionquality images. This makes impractical the widespread use ofuncompressed digital video in telecommunications applications.

Fortunately, there is considerable redundancy in video data, both interms of information theory and human perception. This redundancy allowsfor the compression of digital video sequences into lower transmissionrates. For some time, researchers have been aware of a variety oftechniques that can be used to compress video data sequences anywherefrom 2:1 to 1000:1, depending on the quality required by theapplication. Until recently, however, it was not practical toincorporate these techniques into low cost video-based applications.

A number of standards have been recently developed for such activitiesas video conferencing, the transmission and storage of standard highquality still images, as well as standards for interactive videoplayback to provide interoperability between numerous communicationspoints. The standards recognize a need for quality video compression toreduce the tremendous amount of data required for the transmission ofvideo information.

Two important methods of data compression for video information are usedwidely throughout the various standards for video communication. Theseare the concepts of frame differencing and motion compensation. Framedifferencing recognizes that a normal video sequence has littlevariation from one frame to the next. If, instead of coding each frame,only the differences between a frame and the previous frame are coded,then the amount of information needed to describe the new frame will bedramatically reduced. Motion compensation recognizes that much of thedifference that does occur between successive frames can becharacterized as a simple translation of motion, caused either by themoving of objects in the scene or by a pan of the field of view. Ratherthan form a simple difference between blocks in a current frame and thesame block in the previous frame, the area around those blocks can besearched in the previous frame to find an offset block that more closelymatches the block of the current frame. Once a best match has beenidentified, the difference between a reference block in the currentframe and the best match in the previous frame are coded to produce avector that describes the offset of the best match. This motion vectorthen can be used with the previous frame to produce the equivalent ofwhat the current frame should be. These methods, and others areincorporated into systems which make possible the rapid transmission ofreal-time video information.

As the worlds of telecommunications and computers blend closelytogether, the telecommunications aspects of communications will have tocontend with some of the constraints of the computer world.Particularly, video conferencing over existing computer networks willprove a challenge in that maintaining real time informationcommunication over traffic-burdened existing network protocols may proveinsurmountable.

Current video algorithms assume a nearly constant bandwidth availabilityfor the encoding of video information. This is evidenced by the use ofonly a single output buffer for traditional video encoder output. It iscommon to use the output buffer fullness as a feedback parameter forencoding subsequent images; i.e., with higher or lower levels ofquantization. A well-known effect resulting from using a single outputbuffer is called “bit-bang” where the output buffer is over depleted bythe interface to the communications channel, causing the feedback loopto indicate that the buffer can handle lots of data, which in turncauses the video compression algorithm to under optimize the subsequentimage coding. The user perceives the bit-bang as an uneven quality andframe rate.

To alleviate bit-bang, the typical approach has been to limit the amountof data pulled out from the encoder video output buffer to a fraction ofthe total size of the output buffer; 10% to 30% is typical. Thisapproach keeps the feedback indicator rather small, and encoding moreuniform. The underlying assumption of this approach is that thecommunications channel will usually not be changing rapidly. Exceptionsare caused by connectivity interruptions, such as burst errors, whichare handled strictly as exceptions to the call. In a local area network(LAN), or other collision-sensing multiple access channel, or in othernetworks with burst characteristics (such as noisy RF channels), thisunderlying assumption no longer holds. Over these sorts ofcommunications channels, unanticipated transmission delays may result inbit-bang problems which are not so readily overcome by limiting the sizeof the feedback buffer. Thus, video jerkiness will result in real-timevideo communication over such channels. It would be advantageous, and istherefore an object of the present invention to provide a videotransmission mechanism which can be accommodated on such potentialbursty networks.

SUMMARY OF THE INVENTION

From the foregoing, it can be appreciated that there is a need for amechanism of incorporating real-time video data communication overtraditional network protocols to smooth video transmission. It istherefore an object of the present invention to provide a method andapparatus for the conveyance of video data over such networks as localarea networks.

These and other objects of the present invention are provided byintroducing feedback between the video CODEC and the intendedcommunications channel such that the characteristics of the channel areused to drive multiple video output buffers. These multiple outputbuffers share an original temporal video reference, but have differentsubsequent temporal video images. The communications channel interfacethen picks the subsequent video image buffer that best matches thecurrent conditions experienced by it. By using a predictor of thechannel performance, the video algorithm can be tuned to provide videooutput buffers with the best guess of how the buffers should beconfigured. A number of subsequent histories of an image are buffereduntil the receiving channel indicates it is ready to receive the next.Then the appropriate output buffer having the corresponding temporalchange in the video is used to supply the next frame change informationto the receiving station.

BRIEF DESCRIPTION OF THE DRAWINGS

The objects, features and advantages of the present invention will beapparent from the following detailed description in which:

FIG. 1 demonstrate a hypothetical network having a plurality ofvideo-capable nodes for interacting and providing video conferencingcapabilities.

FIG. 2 illustrates hardware to be utilized in implementing the presentinvention in one embodiment.

FIG. 3 illustrates a logical rendition of a plurality of output bufferswith successive time interval video information for one embodiment ofthe present invention.

FIG. 4 illustrates a branching tree structure corresponding tosuccessive temporal transmit reference images for one embodiment of thepresent invention.

FIG. 5 illustrates alternative logical output buffer uses for channeldependent data transmission over a network.

FIG. 6 illustrates characteristics of audio information which may betransmitted over a network in accordance with another embodiment of thepresent invention.

FIG. 7 illustrates a generalized block diagram of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

A method and apparatus are described for the conveyance of real-timeisochronous data over bursty networks. Although the present invention isdescribed predominantly in terms of the transmission of videoinformation, the concepts and method are broad enough to encompass thetransmission of real-time audio and other data requiring isochronousdata transfer. Throughout this detailed description, numerous detailsare specified such as bit rates and frame sizes, in order to provide athorough understanding of the present invention. To one skilled in theart, however, it will be understood that the present invention may bepracticed without such specific details. In other instances, well-knowncontrol structures and gate level circuits have not been shown in detailin order not to obscure unnecessarily the present invention.Particularly, some functions are described to be carried out by variouslogic circuits. Those of ordinary skill in the art, having beendescribed the various functions will be able to implement the necessarylogic circuits without undue experimentation.

FIG. 1 is used to illustrate a simple network having a plurality ofvideo-capable nodes. The network is illustrated as a simple star network10 having a centrally incorporated multi-point control unit (MCU). Thenetwork is presented as having five (5) nodes 11, 12, 13, 14 and 15. Forthe purposes of explanation, these will all be considered video-capablenodes, with nodes 12 and 13 supporting IRV video (160 pixels×120 lines)while nodes 11, 14 and 15 support HQV video (320 pixels×240 lines). Thenetwork illustrated in FIG. 1 is purely for illustrative purposes andmany more complex nodes may be incorporated that are non-video capableon the same network as the illustrated nodes. Further, the presentinvention may be applied to any network configuration besides the starconfiguration of FIG. 1 such as token ring networks, branching treenetworks, etc. The fundamental requirement for the network which hasthese video-capable nodes is that the nodes be able to transmit data,including video data from one point to another and receiveacknowledgments from the receiving node.

FIG. 2 illustrates typical video encoding hardware to which the presentinvention may be applied. This can be used for preparing video data tobe transmitted over a network of the type illustrated in FIG. 1 toprovide real-time video conferencing. A video camera 20 receives thevideo image that is to be encoded and conveyed. Such cameras are commonand work on a number of technologies such as charge coupled devices,etc. The video camera may directly include video CODEC 21 or it may betightly coupled as illustrated in the figure. The video CODEC 21receives the electronic image from the camera and digitizes the imagewhen being used in its encoder capacity. Video CODECS are generallyknown and come in a number of varieties which may be used for encodingvideo data to be transmitted and decoding video data when received. InFIG. 2, the camera output is propagated to the capture buffer 22 ofvideo CODEC 21.

From the capture buffer 22, the video information is processed by motionestimation circuitry 23. The motion estimation circuitry is used togenerate motion vectors which describe the difference of a portion of avideo image from the previously recorded image in terms of atranslational offset. The motion estimation circuitry compares thecurrently decoded frame from the previous frame stored in the transmitreference image buffer 30 about which more will be described furtherherein. From the motion estimation circuitry, the outputs are the motionvectors and the motion compensated image 24. The motion compensatedimage 24 is then processed by the differential pulse code modulation(DPCM) circuitry 25 which generates digital information of the changesto the previously stored transmit reference image. Finally, a finalstage of coding is done at transform coding block 26 which also performsquantization and run-length encoding. Run-length encoding is a techniquefor compressing data sequences that have large numbers of zeros and iswell-known to those of ordinary skill in the art. This transform codermay perform a discrete cosine transform (DCT).

From the transform coding block, the coded sequence is propagated to theoutput buffer 27 which is used to maintain a constant bit rate for theoutput to the network. As was described, prior art methods used theoutput buffer fullness to regulate the degree of quantization that wouldbe applied to the compressing and encoding circuitry because a constantbandwidth availability was assumed.

The transform coder block 26 also outputs the compressed image data togenerate a new transfer reference image for storage in the transmitreference image buffer. The encoding logic provides the compressed imagedata to a decoding block 28 that has an inverse quantizer and inversediscrete cosine transform decoder which can be used to combine thedecoded image data with the previously stored transfer reference imageto yield a new transmit reference image which corresponds to the imagethat was most recently propagated on the network. It is this image datathat would be used in calculating the changes in the image in sendingthe next frame of information. In other words, the transmit referenceimage, which is the same image that will be reconstructed at the otherend by the video decoder, is used as the basis of subsequent encoding,including motion vectors and motion compensated image compression.

As was described in the previous section, the prior art feedbackmechanism using the output buffer assumed a constant bit rate would beavailable for the transmission of information. This assumption no longerholds for video conferencing type devices which are on bursty networkssuch as CSMA LAN networks. The solution proposed by the presentinvention is to provide feedback between the video CODEC and thecommunications channel such that the characteristics of the channel areused to drive multiple video output buffers. These buffers share anoriginal temporal video reference but will have different subsequenttemporal video images. The communications channel interface then picksthe subsequent video image buffer that best matches the currentcondition. By using a predictor of the channel performance, the videoalgorithm can be tuned to provide video output buffers with the bestguess of how the buffers should be configured. Once a particular outputbuffer's image data is selected, the remaining buffers can be flushed tobe refilled again based on a newly calculated transmit reference image.In the limit, the final action is to revert to an exception handlersimilar to current video CODECS, i.e., insert a key frame to restart theencoding of video data transmission.

FIG. 3 illustrates conceptually the logical multiple output buffers ofthe present invention. When the video camera 20 records an image it isencoded by the encoding circuitry described above and the encodedinformation is propagated to the output buffer 27. In a bursty network,the network may not be able to receive this newly calculated image data.Accordingly, the camera continues to detect images and encode the dataand newly translated data is stored in subsequent output buffers such as41, 42 or 43. For example, the information stored in the output buffer27 may correspond to the digital information equivalent to the changesfrom the transmit reference image stored in the transmit reference imagebuffer 30 at time t=0. In output buffer 41, the data information maycorrespond to the difference between the transfer reference image and1/15th of a second later than the data information stored in buffer 27.Likewise, output buffers 42 and 43 may store data corresponding to thetemporal change between the transmit reference image and the imagebefore the camera at successively later times.

The video encoder and camera circuitry described may be incorporated aspart of a station that is on the network and are responsive toinformation received over the communications channel. When a given nodeagain has the bus, the output buffer with the most current image may besignaled to transmit its information to the receiving node. Likewise,the channel information is used to then calculate the next transmitreference image for storage. The output buffers are then flushed and areagain loaded in a time sequential manner until the data is again readyto be sent over the network. While four (4) output buffers areillustrated, this is purely for illustrative purposes in that as manybuffers may be implemented as computing power and resources provide.

FIG. 4 illustrates conceptually a branching tree that is pruned at timesT=1, T=2, T=3, etc., for each slice of information that is taken andpropagated on the network. This conceptualizes the use of multipleoutput buffers as a tree which is continually pruned with the mostcurrent pruning corresponding to the present transfer reference image.

FIG. 5 illustrates another conceptualization of the present invention.The encoder, through feedback from the data communications channel,creates several logical output buffers corresponding to behavioralpredictions based on the feedback from the communications channel. Forexample, logical output buffer 1 could represent the case where morebandwidth will be dynamically allocated to this natural data compressionover the next unit of time. The unit of time could be an image frame or,for example, a frame of sampled audio. In FIG. 5, the variouspredictions of the bandwidth available to the compression algorithm areshown below in Table I.

TABLE I Prediction of Bandwidth per Unit Time Relative to CurrentTransmit Logical Output Buffer Reference 1 about the same 2 a lot more 3more 4 a lot less

For video coding, more bandwidth could be used to get sharper imagesand/or higher frame rate. The actual data contained in the logicaloutput buffers can be significantly different, too. For example, invideo coding, the new transmit reference might be calculated fromdifferent input images in time and/or spatial resolution. Logical outputbuffer 1 might represent the data from an image taken 1/15th of a secondlater than transmit reference 0, while logical output buffer 2 mightrepresent the differential coding from an image half a second later thantransmit reference 0. Such an approach would be good for video codingfor channels where the bit rate allocated to video may undergo extremefluctuations such as in the bursty networks described above.

While with reference to FIGS. 2 and 3, the output buffers areillustrated as, for example, discrete memory elements. FIG. 5 makes itclear that logical buffers may be created in a common block of memoryand that the number of such buffers is limited only by the availablecomputational power to simultaneously encode them and the memory tosufficiently handle them. FIG. 6 is used to illustrate that the presentinvention is not necessarily limited to video encoding and illustrates aframe of audio information. For example, in the G.728 standard eachframe of data is 5 milliseconds long. The frame may be stored as atransmit reference and subsequent transmissions may follow thedifferential coding principals wherein only the changed information issent to the receiving node. The audio encoder may be responsive tofeedback from the network and maintain a plurality of logical outputbuffers such as those described in the video application. One possibleapplication for such an implementation would be in wireless telephonywherein portions of an audio transmission may be lost when atransmitting station goes through a tunnel. The responding networkindicates that its most recently receiving information is slightly staleand that a late change logical output buffer should be used in providingthe encoded differential information.

In a more general description of the present invention, reference is nowmade to FIG. 7. Information about a real-time object 100 that is desiredto be conveyed from a transmitting node to a receiving node on some sortof network is shown. This real-time object 100 may be a video image orit may be a sound depending on the particular implementation. A capturemechanism 110 detects the real-time object and encodes it intoelectronic information. The capture mechanism may be a camera for videoinformation as described above or a microphone or stereo microphones foraudio information. This information is then processed by differentialencoder 115 which compares the newly captured real-time object to thepreviously stored recorded object in transmit reference buffer 120. Thedifferentially encoded data is then propagated to a logical outputbuffer 125 which operates as those described above. When the networkclears the output buffers for transmission, the particular output bufferhaving the best information conveys it over the network and that sameinformation is used to calculate a new transmit reference to be storedin transmit reference buffer 120.

There has thus been described a method and apparatus of differentialcoding for use in bursty transmission networks which greatly improvesthe quality of transmitted compressed information. Although the presentinvention has been described in terms of preferred embodiments, it willbe appreciated that various modifications and alterations might be madeby those skilled in the art without departing from the spirit and scopeof the invention. The invention should, therefore, be measured in termsof the claims which follow.

1. For use in a communications network having a plurality of nodeswherein a node may encode real-time information for propagating oversaid network, a method of processing said real-time informationcomprising the steps of: providing said node with a plurality of outputbuffers; (a) electronically capturing said real-time information andconverting it into electronic data; (b) differentially encoding saidelectronic data using a previously stored transmit reference image as abase to produce differential data; (c) storing said differential data inone of said plurality of output buffers; (d) monitoring said network foraccess to propagate said differential data; repeating steps (a)-(d)until said node may propagate said differential data over said network;transmitting data over said network from the one of said plurality ofoutput buffers providing a best differential data to a receiving node onsaid network, wherein said best differential data represents adifferential data whose use in conjunction with the previously storedtransmit reference image produces an image that approximates a currentframe better than use of other differential data contained in saidplurality of output buffers; and calculating a new transmit referenceimage based on said best differential data and said previously storedtransmit reference image.
 2. An apparatus comprising: an encoder forproducing encoded real-time information; a transmit reference buffer forstoring a current transmit reference; compression circuitry coupled tothe encoder and to the transmit reference buffer for producingcompressed data based upon the current transmit reference and theencoded real-time information; a plurality of dynamically created outputbuffers coupled to the compression circuitry for storing the compresseddata, each dynamically created output buffer being created andconfigured based upon one or more characteristics of a communicationchannel to be used for transmitting the encoded real-time informationover a network; and a network interface coupled to the plurality ofdynamically created output buffers, the network interface forinterfacing with the network, for determining a selected output bufferfrom the plurality of dynamically created output buffers and fortransmitting data over the network from the selected output buffer, theselected output buffer containing compressed data which accommodates theone or more characteristics of the network better than compressed datain at least one other buffer of the plurality of dynamically createdoutput buffers.
 3. The apparatus of claim 2, wherein the selected outputbuffer contains compressed data which accommodates one or morecharacteristics of the network better than compressed data in all otherbuffers of the plurality of output buffers.
 4. An apparatus fortransmitting real-time information over a network, the apparatuscomprising: an encoder for producing encoded real-time information; atransmit reference buffer for storing a current transmit reference;compression circuitry coupled to the encoder and to the transmitreference buffer for producing compressed data based upon the currenttransmit reference and the encoded real-time information; and aplurality of dynamically created output buffers coupled to thecompression circuitry for buffering the compressed data, each of theplurality of dynamically created output buffers having contents andbeing created and configured based upon one or more characteristics of acommunication channel to be used for transmitting the encoded real-timeinformation over a network, the contents of a selected output buffer ofthe plurality of dynamically created output buffers to be transmittedonto a data communications channel of the network based upon the one ormore characteristics of the data communications channel.
 5. Theapparatus of claim 4 further comprising a network interface coupled tothe plurality of output buffers, the network interface for interfacingwith the network, the network interface determining the selected outputbuffer and transmitting data over the network from the selected outputbuffer.
 6. The apparatus of claim 5, wherein the selected output buffercontains compressed data which, when used in conjunction with thecurrent transmit reference, accommodates the one or more characteristicsof the data communications channel better than compressed data from atleast another buffer of the plurality of output buffers.
 7. Theapparatus of claim 5, wherein the selected output buffer containscompressed data which, when used in conjunction with the currenttransmit reference, accommodates the one or more characteristics of thedata communications channel better than compressed data from all otherbuffers of the plurality of output buffers.
 8. The apparatus of claim 4,wherein the compressed data comprises a differential between the encodedreal-time information and the current transmit reference.
 9. Theapparatus of claim 4, wherein the one or more characteristics of thedata communications channel include bandwidth availability on the datacommunications channel.
 10. The apparatus of claim 4, wherein the one ormore characteristics of the data communications channel includeburstiness of traffic on the data communications channel.
 11. Theapparatus of claim 4, wherein the one or more characteristics of thedata communications channel include transmission delay on the datacommunications channel.
 12. The apparatus of claim 4, wherein theencoded real-time information includes video information.
 13. Theapparatus of claim 4, wherein the encoded real-time information includesaudio information.
 14. An apparatus comprising: an encoder for producingencoded real-time information; a transmit reference buffer for storing acurrent transmit reference; compression circuitry coupled to the encoderand to the transmit reference buffer for producing compressed data basedupon the current transmit reference and the encoded real-timeinformation; a plurality of dynamically created output buffers coupledto the compression circuitry for storing the compressed data, eachdynamically created output buffer being created and configured basedupon one or more characteristics of a communication channel to be usedfor transmitting the encoded real-time information over a network; and anetwork interface coupled to the plurality of output buffers, thenetwork interface for selecting a selected output buffer of theplurality of output buffers by determining, with reference to one ormore predetermined coding strategies, whether compressed data from theselected output buffer is appropriate for transmission to a receivingnode.
 15. The apparatus of claim 14, wherein the one or morepredetermined coding strategies include minimizing artifacts.
 16. Theapparatus of claim 14, wherein the one or more predetermined codingstrategies include allocating available bandwidth to achieve a higherframe rate.
 17. The apparatus of claim 14, wherein each of the outputbuffers is dynamically created and configured in accordance withcharacteristics of a communication channel being used to transmit theencoded real-time information over the network.
 18. An apparatuscomprising: an encoder for producing encoded real-time information;compression circuitry coupled to the encoder for producing compresseddata based upon a previously stored transmit reference and the encodedreal-time information; a plurality of dynamically created output bufferscoupled to the compression circuitry for storing the compressed data,each dynamically created output buffer being created and configuredbased upon one or more characteristics of a communication channel to beused for transmitting the encoded real-time information over a network;and a network interface coupled to the plurality of dynamically createdoutput buffers, the network interface transmitting compressed data froma selected output buffer of the plurality of dynamically created outputbuffers, the compressed data from the selected output buffer when usedin conjunction with the previously stored transmit referenceapproximating a next frame expected by a receiving apparatus.
 19. Theapparatus of claim 18, wherein the selected output buffer is selectedbased upon current conditions of a communication channel to be used fortransmitting the contents of the selected output buffer.
 20. A method oftransmitting data over a network comprising: encoding the data bydetermining the differences between the data and a transmit reference toproduce differential data; storing the differential data in a pluralityof output buffers dynamically created based upon characteristics of acommunication channel to be used for transmitting the differential dataover the network; selecting one of the plurality of output buffers as acurrent transmit buffer based upon current conditions of acommunications channel in the network used to transmit the differentialdata; and transmitting the differential data from the current transmitbuffer over the network.
 21. The method of claim 20, additionallycomprising compressing the differential data prior to storing thedifferential data in one of the plurality of output buffers.
 22. Themethod of claim 20, additionally comprising repeating said encoding,storing, selecting, and transmitting using the data from the currenttransmit buffer as the transmit reference.
 23. A method of transmittingreal-time data over a network comprising: encoding the real-time data bydetermining the differences between the real-time data and a transmitreference to produce differential data; storing the differential data inone of a plurality of output buffers, each output buffer dynamicallycreated based upon one or more characteristics of a data communicationschannel of the network; selecting one of the plurality of output buffersas a current transmit buffer by determining whether the differentialdata in a particular output buffer accommodates one or morecharacteristics of the network better than different data in at leastone other output buffer of the plurality of output buffers; andtransmitting differential data from the current transmit buffer over thenetwork.
 24. The method of claim 23, additionally comprising compressingthe differential data prior to storing the differential data in one ofthe plurality of output buffers.
 25. The method of claim 23,additionally comprising repeating said encoding, storing, selecting, andtransmitting using the data from the current transmit buffer as thetransmit reference.
 26. An apparatus comprising: an encoder forproducing encoded real-time information; compression circuitry coupledto the encoder for producing compressed data based upon a previouslystored transmit reference and the encoded real-time information; aplurality of dynamically created output buffers coupled to thecompression circuitry for storing the compressed data, each buffer beingconfigured in accordance with characteristics of a communication channelto be used for transmitting the encoded real-time information over anetwork; and a network interface coupled to the plurality of outputbuffers, the network interface transmitting compressed data from aselected output buffer of the plurality of output buffers, thecompressed data from the selected output buffer when used in conjunctionwith the previously stored transmit reference approximating a next frameexpected by a receiving apparatus.
 27. The method of claim 26, whereinsaid encoder produces encoded real-time information by determining thedifferences between the real time information and a transmit reference.